The present invention relates to semiconductor integrated circuit devices including microcomputers or microprocessors and incorporating debug circuits for verifying operation of programs executed by CPUs, and to debugger devices for debugging the programs.
Conventionally, in-circuit emulators (ICEs), instruction level software simulators, monitors or the like have been used to develop software programs (hereinafter, simply referred to as programs) executed by processors such as microcomputers embedded in, for example, household electrical appliances and to verify operation of the programs. The ICEs are a debugging tool unique to microcomputers or microprocessors. The instruction level software simulators are a technique for representing, on a host computer, for example, the same simulated executing status as that on a microcomputer or microprocessor by executing (simulating), on the host computer, a program to be developed executed on the microcomputer or microprocessor. The monitors are a technique for debugging a program executed on a microcomputer or microprocessor by incorporating a monitoring program for execution control or monitoring into the program in advance so as to monitor the program executed on the microcomputer or microprocessor and then by operating the monitoring program from the host computer after the completion of the microcomputer or microprocessor.
With respect to the conventional ICEs, target programs are developed and debugged by preparing an evaluation board for development and by installing special hardware, instead of a processor otherwise placed on the evaluation board. However, household electrical appliances become miniaturized and debugging is more frequently performed in the same program operating environment as that for final products in recent years, so that it is more and more difficult to install special hardware such as ICEs. In addition, since the ICEs are a tool used exclusively for debugging, they operate under different operational conditions from those for final products in some cases. As a result, the final products more often suffer from operational troubles in programs which do not occur in operation of the ICEs.
To solve these problems, for the purpose of developing a program and verifying operation thereof in the same operating environment as that for an actual product, an on-chip debugging environment in which a debug circuit is incorporated into a processor in advance and the program is debugged using the incorporated debug circuit has been developed recently.
Accordingly, since the on-chip debugging environment utilizes the debug circuit incorporated in advance, operation of the program can be analyzed in the actual product even if an operational trouble occurs in the program after the completion of the product as well as during the development thereof.
However, the known on-chip debugging environment has various types of debugging functions, but once which processor is to be a target is determined, only limited types of debugging functions can be incorporated into the processor. As a result, if a debugging function that a program developer needs is not incorporated, there arises a problem that the debugging must be conducted by an alternative means.
In addition, debugging functions needed in general differ between the initial stage and the final stage in the course of development of a program. Therefore, if the debugging functions are limited, there arises another problem of insufficiently meeting the demand of the program developer.
If all the debugging functions are incorporated into a processor to solve the problem, the circuit scale of the incorporated debug circuits is increased, resulting in hindering downsizing of a semiconductor chip including the processor.